在這個章節我們將手把手帶大家一起將 Appium Android 的環境安裝完成。
但是在開始安裝前,我們還是需要先知道其運作的原理,如下圖所示,Appium Server 會與 UiAutomator2 的 Driver 做溝通,UiAutomator2 Driver 會呼叫到 UiAutomator2 server,再去呼叫 UiAutomator2 在裝置上執行操作,如此長的流程也是 Appium 令人詬病的原因,中間只要有一個步驟斷了,便會影響到測試的進行。
至於什麼是 UiAutomator 呢?UiAutomator 是 Google 提供用來執行 Android 自動化測試的一個 Library,基於 Accessibility 的服務,可以在不對 App 做侵入式埋程式碼的情況下,對任一 App 進行測試,定且進行像是點擊按鈕、滾動畫面、輸入文字等行為。
Appium 在 Android 測試依賴於 Java 開發套件(JDK)來運行,因此我們需要先安裝 JDK。
這邊會需要安裝 Android Studio 是因為這可以讓我們很方便的取得 Android SDK,並且在後續的開發中,我們如果要透過模擬機來進行測試的話,也需要先下載 Android Studio,步驟可以參考下方:
where Java
的指令來取得,ANDROID_HOME 可以在 Android Studio SDK 管理員中找到目錄的路徑,通常都會安裝在 /Users/{USER_NAME}/Library/Android/sdk
這裡,接著我們將這兩個變數寫入環境變數中,export ANDROID_HOME="/Users/{USER_NAME}/Library/Android/sdk"
export JAVA_HOME="/usr/bin/Java"
export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools"
adb devices
這個指令來看看有沒有設定成功,如果在沒有連接裝置的情況下出現 List of devices attached
,那麼恭喜你!安裝成功,可以喘口氣,讓下個步驟邁進!由於我們是透過 Robot Framework 來進行測試,因此這邊需要先安裝 python ,python 的安裝可以到官網下載:https://www.python.org/downloads/ ,安裝後如果需要確認 python 已經安裝完成,可以透過 python -v
來做確認。
python3 -V
# Python 3.12.5
由於 appium 是基於 node.js 進行開發的,因此我們需要先安裝 Node.js 的環境,環境請參考 官方網站 安裝,appium 官方建議透過 LTS 的方式安裝。
安裝後可以透過以下指令檢查安裝是否成功:
node -v
# v20.17.0
npm -v
# 10.8.2
Appium 可以使用以下指令進行全域安裝npm
:
npm install -g appium
如果大家有看到其他文章會下載一個像是下圖的 Appium Desktop 的化,需要注意這是 Appium 1.x 版吧工具,在 appium2 時這個已經被淘汰囉,我們可以看到在 Github 上 Repository 已經被 archived 囉。https://github.com/appium/appium-desktop
在這邊也需要注意 appium 對於安裝上還是有些限制的,像是對於 node 版本的支援,這邊會是個大坑,過去筆者在開發自動化測試時,經常會遇到升級 appium 後測試就不動啦,很高機率是因爲版本不支援的關係,需要抽絲剝繭找出衝突的版本,關於 appium 的限制,可以參考官方網站:https://appium.io/docs/en/latest/quickstart/requirements/
安裝後我們可以透過在終端機輸入 appium 來啟動 appium server,輸入後如果有在終端機上看到 像是下方展示的 appium 執行的 log 的話表示安裝成功囉!
➜ ~ appium
[Appium] Welcome to Appium v2.11.3
[Appium] The autodetected Appium home path: /Users/max/.appium
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
http://127.0.0.1:4723/ (only accessible from the same host)
http://192.168.22.48:4723/
[Appium] No drivers have been installed in /Users/max/.appium. Use the "appium driver" command to install the one(s) you want to use.
[Appium] No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.
還記得前面幾個章節提到的概念嗎?在 appium 開始,appium 將 appium server 及 appium driver 切開,如此一來可以安裝該次測試需要測試的 driver 即可,因此我們需要安裝 android 測試時需要使用的 UiAutomator2,安裝之前請先確認 Appium 伺服器未運行(如果正在運行,請使用Ctrl-C退出)。然後運行以下命令:
appium driver install uiautomator2
安裝成功後會顯示以下訊息:
✔ Checking if 'appium-uiautomator2-driver' is compatible
✔ Installing 'uiautomator2' using NPM install spec 'appium-uiautomator2-driver'
ℹ Driver uiautomator2@3.7.7 successfully installed
- automationName: UiAutomator2
- platformNames: ["Android"]
到這邊我們已經完成 Appium Android 的環境安裝囉,恭喜!有時候設定開發環境比寫程式來的枯燥乏味許多,成功安裝後可以站起來走走、眺望遠方,休息一下,讓我們繼續一起往下個章節出發!